from selenium import webdriver
from selenium.webdriver.common.by import By
import time

class TestCase:
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://www.baidu.com')

    def by_id(self):
        # 通过标签的id属性定位
        kw = self.driver.find_element(By.ID,'kw')
        # webelement对象方法.get_attribute()获取属性 'outerHTML'获取标签源代码
        print(kw.get_attribute('outerHTML'))

        su = self.driver.find_element(By.ID,'su')
        print(su.get_attribute('outerHTML'))

    def by_name(self):
        # 通过标签的name属性定位
        wd = self.driver.find_element(By.NAME,'wd')
        print(wd.get_attribute('outerHTML'))

    def class_name(self):
        # 通过class属性的name值定位
        spt = self.driver.find_element(By.CLASS_NAME,'s_ipt')
        print(spt.get_attribute('outerHTML'))

    def link_text(self):
        # 通过链接文本定位
        lk = self.driver.find_element(By.LINK_TEXT,'新闻')
        print(lk.get_attribute('outerHTML'))

    def partail_link_text(self):
        # 通过部分链接文本定位
        pt = self.driver.find_element(By.PARTIAL_LINK_TEXT,'hao')
        print(pt.get_attribute('outerHTML'))

    def tag_name(self):
        # 通过标签名字定位<a> <input>等
        tg = self.driver.find_element(By.TAG_NAME,'input')
        # find_element() 定位到第一个元素，返回一个webelement对象
        print(tg.get_attribute('outerHTML'))

        # find_elements() 定位到此标签的所有元素，返回一个webelement对象的list
        tgs = self.driver.find_elements(By.TAG_NAME,'input')
        print(tgs[7].get_attribute('outerHTML'))


    def quit(self):
        time.sleep(1)
        self.driver.quit()

if __name__ == '__main__':
    tc = TestCase()
    # tc.by_id()
    # tc.class_name()
    # tc.tag_name()
    # tc.link_text()
    # tc.partail_link_text()
    tc.by_name()
    tc.quit()